package com.siyu.preplan.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.siyu.common.annotation.Excel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;
import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class PrePlanDto {
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    private String id;

    /**
     * 方案名称
     */
    @Excel(name = "方案名称")
    private String planName;



    /**
     * 方案类型（实时、假拟、历史）
     */
    @Excel(name = "方案类型", readConverterExp = "实=时、假拟、历史")
    private String planType;

    /**
     * 计算类型（自动计算、手动计算）
     */
    @Excel(name = "计算类型", readConverterExp = "自=动计算、手动计算")
    private String calcType;

    /**
     * 开始时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 结束时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 计算步长（单位h）
     */
    @Excel(name = "计算步长", readConverterExp = "单=位h")
    private Integer step;

    /**
     * 方案描述
     */
    @Excel(name = "方案描述")
    private String planDesc;

    /**
     * 纳什系数
     */
    @Excel(name = "纳什系数")
    private Double nash;

    /**
     * 预报类型（预报、预案、预演）
     */
    @Excel(name = "预报类型", readConverterExp = "预报、预案、预演")
    private String preType;

    /**
     * 总降雨量   (单位 mm)
     */
    @Excel(name = "总降雨量   (单位 mm)")
    private Double totalRainfall;

    /**
     * 风险隐患
     */
    @Excel(name = "风险隐患")
    private String riskDanger;

    /**
     * 情景类别
     */
    @Excel(name = "情景类别")
    private String sceneType;

    /**
     *  创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;


    /**
     * 创建人
     */
    @Excel(name = "创建人")
    private String createBy;

    /**
     * 计算水库编码
     */
    @Excel(name = "计算水库编码")
    private String rscd;

    /**
     * 响应预案
     */
    private List<PlanPrePlanDto> planPrePlans;

}
